#ifndef JELLY_SHARE_SRC_EMULE_EMULE_DEFINE_H_
#define JELLY_SHARE_SRC_EMULE_EMULE_DEFINE_H_

namespace jellyfish
{
	enum
	{
		met_header1 = 0x0e,
		met_header2 = 0xe0,
	};

	enum
	{
		PARTSIZE = 9728000ui64,
		EMBLOCKSIZE = 184320,
	};

	enum Tag_Types {
		TAGTYPE_HASH16		= 0x01,
		TAGTYPE_STRING		= 0x02,
		TAGTYPE_UINT32		= 0x03,
		TAGTYPE_FLOAT32		= 0x04,
		TAGTYPE_BOOL		= 0x05,
		TAGTYPE_BOOLARRAY	= 0x06,
		TAGTYPE_BLOB		= 0x07,
		TAGTYPE_UINT16		= 0x08,
		TAGTYPE_UINT8		= 0x09,
		TAGTYPE_BSOB		= 0x0A,
		TAGTYPE_UINT64		= 0x0B,

		// Compressed string types
		TAGTYPE_STR1		= 0x11,
		TAGTYPE_STR2,
		TAGTYPE_STR3,
		TAGTYPE_STR4,
		TAGTYPE_STR5,
		TAGTYPE_STR6,
		TAGTYPE_STR7,
		TAGTYPE_STR8,
		TAGTYPE_STR9,
		TAGTYPE_STR10,
		TAGTYPE_STR11,
		TAGTYPE_STR12,
		TAGTYPE_STR13,
		TAGTYPE_STR14,
		TAGTYPE_STR15,
		TAGTYPE_STR16,
		TAGTYPE_STR17,	// accepted by eMule 0.42f (02-Mai-2004) in receiving code
		// only because of a flaw, those tags are handled correctly,
		// but should not be handled at all
		TAGTYPE_STR18,	// accepted by eMule 0.42f (02-Mai-2004) in receiving code
		//  only because of a flaw, those tags are handled correctly,
		// but should not be handled at all
		TAGTYPE_STR19,	// accepted by eMule 0.42f (02-Mai-2004) in receiving code
		// only because of a flaw, those tags are handled correctly,
		// but should not be handled at all
		TAGTYPE_STR20,	// accepted by eMule 0.42f (02-Mai-2004) in receiving code
		// only because of a flaw, those tags are handled correctly,
		// but should not be handled at all
		TAGTYPE_STR21,	// accepted by eMule 0.42f (02-Mai-2004) in receiving code
		// only because of a flaw, those tags are handled correctly,
		// but should not be handled at all
		TAGTYPE_STR22	// accepted by eMule 0.42f (02-Mai-2004) in receiving code
		// only because of a flaw, those tags are handled correctly,
		// but should not be handled at all
	};
}

#endif  // JELLY_SHARE_SRC_EMULE_EMULE_DEFINE_H_